数据结构 您所在的位置:网站首页 三对角矩阵用k表示i j 数据结构

数据结构

2024-07-06 23:39| 来源: 网络整理| 查看: 265

转载自:https://blog.csdn.net/zwx19921215/article/details/84303646

数组的定义

数组是由n(n>1)个具有相同数据类型的数据元素a1...an组成的有序序列,且该序列必须存储在一块地址连续的存储单元中。

1.数组中的数组元素就有相同的数据类型

2.数组是一种随机存取结构,给定一组下标就可以访问与其对应的数据元素。

3.数组中的数据元素个数是固定的。

 

行向量的一位数组形式

列向量的一位数组形式

 

数组的两种顺序存储方式

1.行优先顺序(Row Major Order):将数组元素按行排列,第i+1个行向量紧接着第i个行向量后面。对于二维数组,按行优先顺序存储的线性序列为:

c语言是按行优先顺序存储的。

 

2.列优先顺序(Column Major Order):将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后,对二维数组,按列优先顺序存储的线性序列位:

设有二维数组A=(aij)mxn ,若每个元素占用的存储单元数为 /(个),LOC[a11]表示元素a11的首地址(也可以用a00表示首地址),即数组的首地址。

1.以“行优先顺序”存储

(1)第1行中的每个元素对应的(首)地址是:

注:如果下标从0开始:LOC[a1j] = LOC[a11]+j x /

(2)第2行中的每个元素对应的(首)地址是:

注:如果下标从0开始:LOC[a2j] = LOC[a11]+(1xn)x/ + jx/

(3)第m行中的每个元素对应的(首)地址是:

注:如果下标从0开始:LOC[amj] = LOC[a11]+(mxn)x/ + jx/

 

三维数组中任一元素aijk的(首)地址是:

多维数组推而广之。

 

2.以“列优先顺序”存储

(1)第1列中的每个元素对应的(首)地址是:

(2)第2列中的每个元素对应的(首)地址是:

(3)第n列中的每个元素对应的(首)地址是:

 

特殊矩阵的压缩存储

特殊矩阵:是指非零元素或零元素的分布有一定规律的矩阵

对于高阶矩阵,若其中非零元素呈现某种规律分布或者矩阵中有大量的零元素,若仍然用常规方法存储,可能存储重复的非零元素或零元素,将造成存储空间的大量浪费。对这类矩阵进行压缩存储。

1.多个相同得非零元素只分配一个存储空间

2.零元素不分配空间

比如:一个nxn的二阶矩阵压缩成一个n的一维空间,大大减少了存储空间,即压缩存储。

 

1.对称矩阵

若一个n阶方阵A=(aij)nxn中的元素满足aij=aji ,i>=1,j=j:aij 在下三角形中,直接保存在sa中。aij之前的i-1行共有元素个数:1+2+....+(i-1) = i(i-1)/2,在第i行上,aij之前恰有j-1个元素,因此,元素aij保存在向量sa中时的下标值k之间的对应关系是:

k=i x (i-1) /2 + j-1      (i>=j)

若i



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有